<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

// @TODO: Get results only where they are set to active

class Myclass_model extends CI_Model
{
	protected $_table;	    
	/**
	 * Constructor
	 *
	 * @access	public
	 */
	function __construct()
	{
		parent::__construct();
		$this->load->helper('date');
	}
	
	// Lấy danh sách các môn học trong 1 lớp
	public function get_monhoc_of_class_by_userid($idlop)
	{
		$this->db->select('phanmon.mon_id as monID, monhoc.mamon, monhoc.tenmon, monhoc.sotinchi');
		$this->db->from('phanmon');
		$this->db->join('monhoc','monhoc.id = phanmon.mon_id');
		$this->db->where('phanmon.lop_id',$idlop);
		$this->db->where('phanmon.gv_id',$this->user->id);
		$query = $this->db->get();
	
		$recordsets = $query->result_array();
		$rs = array();
		if($recordsets != null)
		{
			foreach ($recordsets as $record )
			{
				$record['hasMark'] = $this->theSubjecthasMark($record['monID'],$idlop);
				$record['teachers'] = $this->get_teachers_by_mon($record['monID'],$idlop);
				$rs[] = $record;
			}
			return $rs;
		} else {
			return 0;
		}
		
	}
	
	public function get_lop_info($id)
	{
		$this->db->select('*');
		$this->db->from('lophoc');
		$this->db->where('id', $id);
		$query = $this->db->get();
		return $query->row();
	}
	
/*
	 * Lây danh sách giáo viên của mỗi môn học của lớp học
	 * Lấy user_id của giao viên thay thế cho id của giaovien
	 */
	function get_teachers_by_mon($idmon,$idlop)
	{
		$this->db->select('phanmon.*, giaovien.magv, giaovien.tengv');
		$this->db->from('phanmon','giaovien');
		$this->db->join('giaovien','giaovien.user_id = phanmon.gv_id');
		$this->db->where('lop_id',$idlop);
		$this->db->where('mon_id',$idmon);
		$query = $this->db->get();
		return $query->result_array();
		
	}
	/*
	 * Ham trả lại true nếu môn đã nhập điểm
	 * false nếu chưa nhập điểm
	 */
	function theSubjecthasMark($monID,$lopID)
	{
		$query =  "(
		SELECT id
		FROM bangdiem WHERE id_mon ='$monID' AND id_lop = '$lopID' )";
		$result = $this->db->query($query);
		if($result->num_rows() >= 1)
		{
			$data = $result->row();
			return true;
		}
		else
		{
			return false;
		}
	}
	
	//Lấy tất cả các lớp do giáo viên giảng dạy thông qua user_id
	function get_all_myclass($limit, $start, $userid)
	{
		$this->db->select('phanmon.*, lophoc.id as lophocid, lophoc.malop, lophoc.tenlop');
		$this->db->from('phanmon','lophoc');
		$this->db->join('lophoc', 'lophoc.id = phanmon.lop_id');
		$this->db->where('phanmon.gv_id',$userid);
		$this->db->group_by('phanmon.lop_id');
		$this->db->limit($limit, $start);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	function get_teacher_info_by_user_id($userid)
	{
		$this->db->select('id, magv, tengv');
		$this->db->from('giaovien');
		$this->db->where('user_id',$userid);
		$query = $this->db->get();
		return $query->row();
	}
	
	function get_tenlop()
	{
		$this->db->select('id, malop, tenlop');
		$this->db->from('lophoc');
		$query = $this->db->get();
		return $query->result();
	}
	
	function get_students_by_class($lopid)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc','lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien_lophoc.idlop',$lopid);
		$query = $this->db->get();
		return $query->result_array();
	}

	// thêm vào bảng chi tiết điểm
	// Phiên bản này không sử dụng bảng điểm chi tiết
	function add_chitietdiem($mon_id, $lop_id, $results)
	{
	
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$bangdiemid = $this->add_bangdiem($mon_id,$result,$lop_id,$diemso);
		}
	}
	
	// thêm vào bảng điểm
	function add_bangdiem($idmon, $idhv, $idlop,$diem)
	{
		//Kiểm tra nếu đã tồn tại thì lấy luôn bảng điểm ID
		//nếu chưa có thì insert vào bảng điểm và trả về idbangdiem vừa được thêm vào
		$key = $this->check_mon_lop_from_bangdiem($idmon, $idlop,$idhv);
		if($key !=0)
		{
			return $key;
		}
	
		else
		{
			$data = array(
					'id_mon' => $idmon,
					'id_hv' => $idhv,
					'id_lop'	=>	$idlop,
					'diemtrungbinh'=>$diem
			);
			$this->db->set($data);
			$this->db->insert('bangdiem');
			return $this->db->insert_id();
		}
	
	}
	
	//Kiểm tra xem môn học của lớp nào đó được nhập vào bảng điểm lần nào hay chưa,
	//nếu có rồi thì lấy id bảng điểm add vào chi tiết điểm,
	//nếu chưa có thì thêm mới vào rồi lấy idbangdiem gán sang chitietdiem
	public function check_mon_lop_from_bangdiem($mon_id, $lop_id, $id_hv)
	{
		//$alias = strtolower(auto_alias($this->input->post('alias')));
		$query =  "(
		SELECT id
		FROM bangdiem WHERE id_mon ='$mon_id' AND id_lop = '$lop_id' AND id_hv='$id_hv' )";
		$result = $this->db->query($query);
		if($result->num_rows() >= 1)
		{
			$data = $result->row();
			return $data->id;
		}
		else
		{
			return 0;
		}
	}
	
	/*
	 * Lấy danh bảng điểm môn X của lớp Y có z học sinh
	*/
	
	function  get_tableOfMarkbyTheClassTheSubject($monID,$lopID)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh, bangdiem.diemtrungbinh');
		$this->db->from('hocvien','bangdiem');
		$this->db->join('bangdiem','bangdiem.id_hv = hocvien.id');
		$this->db->where('bangdiem.id_lop',$lopID);
		$this->db->where('bangdiem.id_mon',$monID);
		$this->db->order_by('hocvien.sort');
		//$this->db->order_by('hocvien.lastname');
		$query = $this->db->get();
		return $query->result_array();
	}
	
	// Sửa chi tiết điểm theo môn và số lần kiểm tra hoặc điểm thi
	/*
	 * Edited by ManhVT hỗ trợ nhập điểm
	*/
	function edit_chitietdiem($results,$monID, $lopID)
	{
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$olddiemso = $this->input->post('old_diem_'.$result);
			if($diemso != $olddiemso)
			{
				$this->edit_diem($monID,$lopID,$result,$diemso);
			}
		}
	}
	
	function edit_diem($monID,$lopID,$studentID,$diemso)
	{
		$data = array(
				'diemtrungbinh'	=>	$diemso,
					
		);
		$this->db->set($data);
		$this->db->where('id_mon',$monID);
		$this->db->where('id_lop',$lopID);
		$this->db->where('id_hv',$studentID);
		$this->db->update('bangdiem');
	}
	
	public function lockmh($id = null,$status = 1, $idlop)
	{
		$data = array
		(
				'lock'=> $status
		);
		$this->db->where('id_lop',$idlop);
		$this->db->where('id_mon',$id);
		$this->db->update('lophoc_monhoc',$data);
	}
	
	function get_my_store()
	{
		$this->db->select('*');
		$this->db->from('vt_kho');
		$this->db->where('manager_id',$this->user->id);
		$query = $this->db->get();
		return $query->result_array();
	}
	
}

/* Location: ./application/models/reg_model.php */